package org.example.server.goods.repo;

import org.example.api.goods.category.request.CategoryCreateRequest;
import org.example.api.goods.category.request.CategorySearchWithLevelRequest;
import org.example.api.goods.category.request.CategoryUpdateRequest;
import org.example.frw.api.base.intf.ID;
import org.example.frw.api.base.intf.Pageable;
import org.example.server.goods.repo.doo.CategorySummaryDo;

import java.util.List;

public interface CategoryRepoInterface {
  ID insert(CategoryCreateRequest category);

  List<CategorySummaryDo> pageCategories(Pageable page, CategorySearchWithLevelRequest search);

  Long categoriesCount(CategorySearchWithLevelRequest search);

  CategorySummaryDo findOne(ID id);

  void hide(ID id);

  void updateCategory(ID id, CategoryUpdateRequest updateRequest);
}
